#ifndef __FINDMISMATCH_GPU_H__
#define __FINDMISMATCH_GPU_H__

#include<stdlib.h>
#include<sm_12_atomic_functions.h>
#include<sys/time.h>
#include<stdio.h>
#include <mian_util.h>
#include <cutil_inline.h>
#define FCALPOS_THREAD_NUM (FBLOCK_NUM*FBLOCK_SIZE)
#define HANDLE_ERROR(err) (handleError(err, __LINE__))
#define FQUERY_PER_BLOCK 16
#define FBLOCK_SIZE 512
#define FBLOCK_NUM 1024
#define FCLK 1000000
#define FWARP_SIZE 32
#define UINT_SIZE 4
#define FTHREAD_NUM (FBLOCK_NUM*FQUERY_PER_BLOCK)
struct Info
{
	unsigned char* numMisMatch;
	unsigned char* misPos1;
        unsigned char* misPos2;
        unsigned char* misBase1;
	unsigned char* misBase2;
	unsigned int readStringLength;
	unsigned int refStringLength;
        unsigned int readLength;
        unsigned int numSA;
};

void findMisMatch(char*, char*, unsigned int*, unsigned int*, unsigned int*, struct Info*);

#endif
